//
//  YKSort.h
//  data01
//  第七章 排序
//  Created by gaofeng on 2021/3/27.
//

#ifndef YKSort_h
#define YKSort_h

#include <stdio.h>
// 插入排序：直接插入排序，折半插入排序，希尔排序
/// 直接插入排序，数组第一位为临时存放位，不作为待排序数组
/// 交换排序与选择排序的区别，交换排序每次比较都会进行交换，选择排序是确定了最终位置才会进行交换。
/// @param a 整型数组
/// @param n 数组长度
void InsertSort(int a[],int n);

/// 折半插入法
void InsertSortA(int a[],int n);
void InsertSortHalf(int a[],int n);

// 用插入法理解，有步长的插入法
void ShellSort(int a[],int n);

//交换排序：冒泡排序，快速排序
void BubbleSort(int a[],int n);

// 快速排序
void QuickSort(int a[],int b,int e);

// 简单选择排序
void SelectSort(int a[],int n);

// 堆排序 a[0] 暂存
void HeapSort(int a[],int n);
#endif /* YKSort_h */
